/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Codigo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author kyerte
 */
public class ConsultaDesarrollos {

    private Connection conexion = null;
    private PreparedStatement consultarDesarrollos = null;
    private PreparedStatement insertarDesarrollo = null;
    private PreparedStatement actualizarDesarrollo = null;
    private PreparedStatement eliminarDesarrollo = null;
    private PreparedStatement obtenerIdDesarrollo = null;

    ConsultaDesarrollos() {
        conexion = FrmPrincipal.conexion;
        try {
            consultarDesarrollos = conexion.prepareStatement("SELECT * FROM Desarrollos");
            insertarDesarrollo = conexion.prepareStatement("INSERT INTO Desarrollos"
                    + "(Nombre, Datos) VALUES(?,?)");
            actualizarDesarrollo = conexion.prepareStatement("UPDATE Desarrollos SET "
                    + "Nombre=?, Datos=? WHERE idDesarrollos=?");
            eliminarDesarrollo = conexion.prepareStatement("DELETE FROM Desarrollos"
                    + " WHERE idDesarrollos=?");
            obtenerIdDesarrollo = conexion.prepareStatement("SELECT idDesarrollos "
                    + "FROM Desarrollos WHERE Nombre=?");
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
    }

    public List<Desarrollo> consultarDesarrollos() {

        ResultSet conjuntoResultados = null;
        List<Desarrollo> resultadosDesarrollos = null;

        try {

            conjuntoResultados = consultarDesarrollos.executeQuery();
            resultadosDesarrollos = new ArrayList<Desarrollo>();

            while (conjuntoResultados.next()) {

                resultadosDesarrollos.add(new Desarrollo(
                        conjuntoResultados.getInt("idDesarrollos"),
                        conjuntoResultados.getString("Nombre"),
                        conjuntoResultados.getString("Datos")));
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                conjuntoResultados.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
                close();
            }

        }

        return resultadosDesarrollos;

    }

    public int agregarNuevoDesarrollo(String nom, String info) {
        int resultado = 0;

        try {

            insertarDesarrollo.setString(1, nom);
            insertarDesarrollo.setString(2, info);

            resultado = insertarDesarrollo.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;
    }

    public int actualizarDesarrollo(String nom, String info, int id) {
        int resultado = 0;
        try {

            actualizarDesarrollo.setString(1, nom);
            actualizarDesarrollo.setString(2, info);
            actualizarDesarrollo.setInt(3, id);

            resultado = actualizarDesarrollo.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;
    }

    public int eliminarDesarrollo(int id) {
        int resultado = 0;

        try {

            eliminarDesarrollo.setInt(1, id);

            resultado = eliminarDesarrollo.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;
    }

    public int obtenerIdDesarrollo(String nombre) {

        ResultSet conjuntoResultados = null;
        int idDesarrollo = 0;

        try {

            obtenerIdDesarrollo.setString(1, nombre);
            conjuntoResultados = obtenerIdDesarrollo.executeQuery();

            while (conjuntoResultados.next()) {
                idDesarrollo = conjuntoResultados.getInt("idDesarrollos");
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
        return idDesarrollo;
    }

    private void close() {
        try {
            conexion.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}
